CC = gcc

VPATH = $(TOP_DIR)

INCS = $(addprefix -I, $(inc-y))

CFLAGS += -Wall -g -I$(TOP_DIR)/include $(INCS)

srcs := $(wildcard $(abspath $(src-y)))
SRCS = $(patsubst $(TOP_DIR)%,$(OUT_DIR)%,$(srcs))

OBJS := $(SRCS:.c=.o)

all: $(EXEC)

$(EXEC): $(OBJS)
	$(CC) $(OBJS) -o ${OUT_DIR}/$(EXEC)

$(OUT_DIR)/%.o: %.c
	@mkdir -p $(dir $@)
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -fr $(OBJS) ${OUT_DIR}

.PHONY: all clean
